import os

# 基础配置
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 日志配置
LOG_ALGO_CONFIG = {
    'LOG_DIR': os.path.join(BASE_DIR, 'logs'),
    'LOG_LEVEL': 'INFO',
    'LOG_FORMAT': '%(asctime)s - %(levelname)s - %(message)s',
    'LOG_MAXSIZE': 10 * 1024 * 1024,  # 10MB
    'LOG_BACKUP_COUNT': 5
}

LOG_ADAPTER_CONFIG = {
    'LOG_DIR': os.path.join(BASE_DIR, 'logs'),
    'LOG_LEVEL': 'INFO',
    'LOG_FORMAT': '%(asctime)s - %(levelname)s - %(message)s',
    'LOG_MAXSIZE': 10 * 1024 * 1024,  # 10MB
    'LOG_BACKUP_COUNT': 5
}

# LLM配置
LLM_CONFIG = {
    'BASE_URL': os.getenv('OPENAI_BASE_URL', 'https://api.deepseek.com'),
    'API_KEY': os.getenv('OPENAI_API_KEY', 'sk-10253210471345ef9a6d182923b8908f'),
    "AGREEMENT": "openai",
    'MODEL': 'deepseek-chat',
    "SEMAPHORE": 10
}

# 提示配置
PROMPT_CONFIG = {
    'PROMPT_DIR': os.path.join(BASE_DIR, 'data', 'prompt')
}

# 文件处理配置
FILE_CONFIG = {
    'ALLOWED_EXTENSIONS': ['txt', 'pdf', 'doc', 'docx', 'json'],
    'MAX_FILE_SIZE': 50 * 1024 * 1024,  # 50MB
    'UPLOAD_DIR': os.path.join(BASE_DIR, 'uploads'),
    'TEMP_DIR': os.path.join(BASE_DIR, 'temp'),
    'OUTPUT_DIR': os.path.join(BASE_DIR, 'output')
}

# 数据库配置
DB_CONFIG = {
    'HOST': os.getenv('DB_HOST', 'localhost'),
    'PORT': int(os.getenv('DB_PORT', 3306)),
    'USER': os.getenv('DB_USER', 'root'),
    'PASSWORD': os.getenv('DB_PASSWORD', ''),
    'DATABASE': os.getenv('DB_NAME', 'texttransfer'),
    'CHARSET': 'utf8mb4'
}

# API配置
API_CONFIG = {
    'HOST': '0.0.0.0',
    'PORT': 8000,
    'DEBUG': False,
    'TIMEOUT': 60
}

class Settings:
    def __init__(self):
        self.BASE_DIR = BASE_DIR
        self.LOG_ALGO_CONFIG = LOG_ALGO_CONFIG
        self.LOG_ADAPTER_CONFIG = LOG_ADAPTER_CONFIG
        self.LLM_CONFIG = LLM_CONFIG
        self.PROMPT_CONFIG = PROMPT_CONFIG
        self.FILE_CONFIG = FILE_CONFIG
        self.DB_CONFIG = DB_CONFIG
        self.API_CONFIG = API_CONFIG

settings = Settings()